package javase.chixing.thread_producer_and_consumer_model;

class Shop {
    //设置初始数量为0,当数量小于10的时候生产商品，当数量大于0的时候可以售出商品
    private int count = 0;

    //生产物品
    public synchronized void produceGoods(){
        //如果数量小于10，那么进行生产，生产出来之后唤醒售出
        if (count < 10){
            count ++;
            System.out.println("shop正在生产物品...");
            notify();
        }else {
            try {
                //如果数量大于10 那么直接可以售出，当前方法进入等待状态
                wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    //售出物品
    public synchronized void itemsSold(){
        //如果数量大于0，则可以进行售卖
        if (count > 0){
            count --;
            System.out.println("shop正在售出物品...");
            notify();
        }else {
            try {
                //如果数量小于0，那么先暂停营业，先去生产商品
                wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}
